// Copyright (c) 2010, Anthony Cassidy
// All rights reserved.
// 
// Redistribution and use in source and binary forms, with or without modification, are 
// permitted provided that the following conditions are met:
// 
//     * Redistributions of source code must retain the above copyright notice, this list 
//         of conditions and the following disclaimer.
//     * Redistributions in binary form must reproduce the above copyright notice, this 
//         list of conditions and the following disclaimer in the documentation and/or 
//         other materials provided with the distribution.
//     * Neither the name of the AntsAdventureGameCreator nor the names of its contributors 
//         may be used to endorse or promote products derived from this software without 
//         specific prior written permission.
// 
// 
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
// SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 
// THE POSSIBILITY OF SUCH DAMAGE.
#include "SharedGlobalInventory.h"


ROOMDECLARATION_FOR_CPP(SharedGlobalInventory)


void SharedGlobalInventory::OnInitializeRoom(QString blah)
{
	INV(inv_tile_catalog).SetDisplayName("catalog from tiling company");
	INV(inv_crayons).SetDisplayName("colored crayons");
	INV(inv_chisel).SetDisplayName("chisel");
}

void SharedGlobalInventory::OnEnterRoom(QString blah)
{
}

void SharedGlobalInventory::OnEveryTick()
{

}

void SharedGlobalInventory::OnExitRoom(QString )
{
}


QString SharedGlobalInventory::OnDebugMenuExtension(int /*index*/, bool /*isNameNeededToBeReturned*/)
{
	return "";
}


void SharedGlobalInventory::OnCommandLineExecuteWithCodes(int id, int /*x*/, int /*y*/)
{
        switch(id)
        {
// FULLY TRANSFORMED OBJECTS
			/*
				for these we kind of need to say both 
				- what it can be used as
				- AND where the object came from
				because otherwise the player might wonder how they got the object.
			*/
		case EXAMINE inv_labyrinth_map_:
			break;
		case EXAMINE inv_stone_book_:
			break;
		case EXAMINE inv_stone_tablet_:
			break;
		case EXAMINE inv_treasure_map_:
			break;
		case EXAMINE inv_replica_of_temple_:
			break;
		case EXAMINE inv_bejewelled_sceptre_:
			break;
// SOURCE OBJECTS
			/*
			hmmn, we can't really hint here as what to do with them
			but maybe if they take them to madeline, we should
			have her say something like 'that just looks like a recently torn piece of wallpaper'
			*/
		case EXAMINE inv_wallpaper_:
			break;
		case EXAMINE inv_tile_catalog_:
			break;
		case EXAMINE inv_cement_brick_:
			break;
		case EXAMINE inv_brief_case_:
			break;
		case EXAMINE inv_model_of_casino_extensions_:
			break;
		case EXAMINE inv_bed_post_:
			break;
// HELPER OBJECTS
		case EXAMINE inv_chisel_:
			break;
		case EXAMINE inv_matches_:
			break;
		case EXAMINE inv_scissors_:
			break;
		case EXAMINE inv_crayons_:
			break;
		case EXAMINE inv_lamp_post_:
			break;


		
/*
  USE xxx with xxx - SUCCESSFUL!

 These should hint at what it is going to be used for
 */
		/* LABYRINTH MAP*/
		case USE inv_wallpaper_ with inv_matches_:
			INV(inv_wallpaper).SetVisible(false);
			INV(inv_labyrinth_map).SetVisible(true);
			break;

		/* STONE BOOK */
		case USE inv_chisel_ with inv_tile_catalog_:
			INV(inv_tile_catalog).SetVisible(false);
			INV(inv_stone_book).SetVisible();
			break;

		/* STONE TABLET */
		case USE inv_cement_brick_ with inv_chisel_:
			INV(inv_cement_brick).SetVisible(false);
			INV(inv_stone_tablet).SetVisible();
			break;

		/* TREASURE MAP */
		case USE inv_scissors_ with inv_brief_case_:
			INV(inv_brief_case).SetVisible(false);
			INV(inv_treasure_map).SetVisible();
			break;

		/* REPLICA OF TEMPLE */
         case USE inv_crayons_ with inv_model_of_casino_extensions_:
            INV(inv_model_of_casino_extensions).SetVisible(false);
			INV(inv_replica_of_temple).SetVisible();
			break;

		/* BEJEWELLED SCEPTRE */ 
		case USE inv_bed_post_ with inv_lamp_post_:
			INV(inv_bed_post).SetVisible(false);
			INV(inv_lamp_post).SetVisible(false);
			INV(inv_bejewelled_sceptre).SetVisible();
        }

}




